package com.sansui.blog.dao;

import com.sansui.blog.pojo.User;
import com.sansui.blog.pojo.UserLoginLog;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @name: UserDao
 * @author: Sansui
 * @Software: IDEA
 * @Blog: https://www.cnblogs.com/sansui6/
 * @date: 2022-03-19 22:35
 **/
/*获取用户信息 DAO*/
@Mapper
public interface UserDao{

    /**
     * 根据用户名查找数据，用作登录查询
     * @param username
     * @return
     */
    User findByUsername(@Param("username") String username);
//
//    //查询所有用户
//    List<User> getList();

    /**
     * 根据用户名和密码查询用户信息
     * @param username 用户名
     * @param password 密码
     * @return 用户信息
     */
    //根据用户名和密码查询用户信息
    User queryUserByUserName(@Param("username") String username,@Param("password") String password);

    /**
     * 根据用户名查询uuid
     * @param username 用户名
     * @return uuid
     */
    String getUserUuid(String username);

    /**
     * 保存登录日志
     * @param loginLog
     */
    void insertLoginLog(UserLoginLog loginLog);


    /**
     * 获取登录日志
     * @return
     */
    List<UserLoginLog> getLoginLog();

    /**
     * 获取用户数量
     * @return
     */
    Integer countUser();

    /**
     * 获取用户信息
     * @param page
     * @param limit
     * @return
     */
    List<User> getUserList(@Param("page") Integer page,@Param("limit") Integer limit);

    /**
     * 根据用户id 获取用户信息
     * @param id
     * @return
     */

    User getUserById(Long id);

    /**
     * 根据用户id  修改用户状态
     * @param id
     * @param status
     * @return
     */
    Integer updateUserStatus(@Param("id") Long id,@Param("status") String status);

    /**
     * 根据用户id 获取用户信息
     * @param uid
     * @return 用户信息
     */
    User getUserByUid(String uid);

    /**
     * 修改密码
     * @param password
     * @param uid
     * @return
     */
    Integer updatePassword(@Param("password") String password,@Param("uid") String uid);


}
